微软发布Excel内置Python以后,Microsoft 365中的Excel实际上有了两种脚本编程语言,即VBA和Python。本节对这两种工具作简单的对比。
使用方式不同
Excel内置Python采用公式的使用方式,与VBA具有较完备的脚本编辑环境不同。1.1节详细介绍了Excel内置Python的编程环境。Excel内置Python的使用方式类似Excel Power Query中M语言的用法。
处理数据的类型不同
Excel内置Python全面支持pandas,而pandas和Power Query一样是为处理大型数据而生的。Excel内置Python实际上为Excel用户提供了处理大型数据的另外一种解决方案。VBA主要处理传统中小型数据,处理大型数据力不从心。当然,Excel内置Python处理中小型数据也是可以的,而且有一定的优势。
功能上有所不同
Excel内置Python目前只支持二十个第三方包,但即使只有二十个包,提供的功能已经远远超过了VBA提供的数据处理能力。Excel内置Python除了能用pandas进行数据清洗外,还可以进行专业的统计分析、机器学习、符号计算、数值计算、图像处理等。1.4节会介绍Excel内置Python支持的第三方Python包。
Python会完全代替VBA吗?
Python会代替VBA吗?此问题由来已久。会吗?会的。
从功能上讲,目前Python已经完全可以代替VBA,pandas包、xlwings包、OpenPyXL包和tkinter包等提供的功能已经足够强大。VBA不需安装,没有版本问题利于代码分发这样一些传统优势在有网的地方,在Excel内置Python面前也不存在了。
当然,功能好坏并不是影响用户选择软件的唯一因素,其他还有路径依赖等。但现在的学生,计算机编程语言的启蒙大多从Python开始,代替了原来的Basic语言,所以未来用VBA的人会越来越少。可以想象,VBA会一直存在,但会逐渐消失,尽管这个过程会很长。